﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace Vehicle.Web.Pages.Admin
{
    /// <summary>
    /// Copyright (C) M-Tear团队
    /// 文 件 名：User_Edit.aspx.cs
    /// 版    本：v1.00.0000
    /// 创建标识：2009-08-26   Created by 杨光远 V1.00.0000
    /// 功能说明：个人信息修改
    /// 注意事项：无
    /// 
    /// 更新记录：
    /// 
    /// </summary>
    public partial class User_Edit:Vehicle.Web.Component.PageBase
    {

        #region---基本变量实例化---
        Vehicle.BLL.Admin b_Admin = new Vehicle.BLL.Admin();//实例化逻辑层用户变量
        Vehicle.Model.AdminInfo m_AdminInfo = new Vehicle.Model.AdminInfo();//实例化实体层用户变量
        #endregion

        #region ---基本方法--
        /// <summary>
        /// 页面加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                b_Admin.DropDownListBind2(Drop_R_ID);//用户角色绑定
                AdminDataBind();//用户信息绑定
            }
        }
        /// <summary>
        /// 用户信息绑定
        /// </summary>
        public void AdminDataBind()
        {
            if (session_ID!= null && session_ID!=0)
            {
                //根据用户登录ID查询用户信息返回内存中的一张表
                DataTable dt = b_Admin.GetModel(new Vehicle.Model.ComponentsInfo("Admin", "A_ID", session_ID.ToString(), "A_ID"));
                if (dt.Rows.Count > 0)//判断查询结果是否有记录
                {
                    txt_A_LoginID.Text = dt.Rows[0]["A_LoginID"].ToString();//绑定登录账号
                    txt_A_Name.Text = dt.Rows[0]["A_Name"].ToString();//绑定用户姓名
                    Drop_R_ID.SelectedValue = dt.Rows[0]["R_ID"].ToString();//绑定用户权限
                    hf_A_LastTime.Value = dt.Rows[0]["A_LastTime"].ToString();//绑定最后修改时间
                    hf_A_LoginID.Value = dt.Rows[0]["A_LoginID"].ToString();//登录账号隐藏值
                    hf_Psw.Value = dt.Rows[0]["A_PassWord"].ToString();//绑定密码隐藏值
                    hf_A_ID.Value = dt.Rows[0]["A_ID"].ToString();//绑定用户ID隐藏值
                }
                else
                {
                    Common.MessageHelper.AlertBack("该记录已删除!");
                }
            }
            else
            {
                Common.MessageHelper.AlertBack("您的操作有误,请重新尝试!");
            }
        }
        #region---修改数据逻辑判断是否有数据更新事件---
        /// <summary>
        /// 修改数据逻辑判断是否有数据更新事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btn_Edit_Click(object sender, EventArgs e)
        {
            if (session_ID != null && session_ID.ToString() != "")
            {
                if (hf_Set.Value == "1")//取值判断
                {
                    //判断最后修改时间是否相等
                    if (b_Admin.GetModel(new Vehicle.Model.ComponentsInfo("Admin", "A_ID", session_ID.ToString(), "A_ID")).Rows[0]["A_LastTime"].ToString() == hf_A_LastTime.Value)
                    {
                        Repeat();
                    }
                    else
                    {
                        d_Show.Visible = true;
                        hf_Set.Value = "0";
                    }
                }
                else
                {
                    Repeat();
                }
            }
            else
            {
                Common.MessageHelper.AlertBack("您的操作有误,请重新尝试!");
            }
        }
        #endregion
        /// <summary>
        /// 逻辑判断是否有帐号重复
        /// </summary>
        public void Repeat()
        {
            //判断当前输入的帐号是否和之前的帐号相同,不相同则先判断是否有重复的帐号
            if (txt_A_LoginID.Text != hf_A_LoginID.Value)
            {
                //判断登录账号在数据库是否有记录
                if (b_Admin.GetModel(new Vehicle.Model.ComponentsInfo("Admin", "R_IsDelete", "0", "A_LoginID", txt_A_LoginID.Text.Trim(), "A_ID")).Rows.Count == 0)
                {
                    UpdateDate();
                }
                else
                {
                    Common.MessageHelper.Alert("已经有相同该帐号的用户,请重新填写");
                }
            }
            else
            {
                UpdateDate();
            }
        }
        /// <summary>
        /// 修改数据
        /// </summary>
        public void UpdateDate()
        {
            if (txt_A_PswTrue.Text == "")//判断密码是否有修改
            {
                m_AdminInfo.A_ID = Vehicle.Common.TextHelper.StringToInt(hf_A_ID.Value);//用户ID
                m_AdminInfo.A_LoginID = txt_A_LoginID.Text.Trim();//登录账号
                m_AdminInfo.A_PassWord = hf_Psw.Value;//用户密码
                m_AdminInfo.A_Name = txt_A_Name.Text.Trim();//用户真实名字
                m_AdminInfo.R_ID = Vehicle.Common.TextHelper.StringToInt(Drop_R_ID.SelectedValue);//角色ID
                m_AdminInfo.A_IsDelete = 0;//是否删除，0 没删除，1 删除
                m_AdminInfo.A_LastTime = Vehicle.Common.TextHelper.StringToDateTime(DateTime.Now.ToString());//最后修改时间
                b_Admin.Update(m_AdminInfo);//更新用户资料
                Common.MessageHelper.AlertRedirect("修改资料成功", "Right.aspx");
            }
            else
            {
                m_AdminInfo.A_ID = Vehicle.Common.TextHelper.StringToInt(hf_A_ID.Value);//用户ID
                m_AdminInfo.A_LoginID = txt_A_LoginID.Text.Trim();//登录账号
                m_AdminInfo.A_PassWord = Vehicle.Common.TextHelper.Encrypt(txt_A_PswTrue.Text.Trim());//用户密码
                m_AdminInfo.A_Name = txt_A_Name.Text.Trim();//用户真实名字
                m_AdminInfo.R_ID = Vehicle.Common.TextHelper.StringToInt(Drop_R_ID.SelectedValue);//角色ID
                m_AdminInfo.A_IsDelete = 0;//是否删除，0 没删除，1 删除
                m_AdminInfo.A_LastTime = Vehicle.Common.TextHelper.StringToDateTime(DateTime.Now.ToString());//最后修改时间
                b_Admin.Update(m_AdminInfo);//更新用户资料
                Common.MessageHelper.AlertRedirect("修改资料成功", "Right.aspx");
            }
        }
        #endregion
    }
}
